// 定义一个任务队列类
import 'dart:collection';

class TaskQueue {
  final _taskQueue = Queue<Future<void> Function()>();

  // 添加任务到队列
  void addTask(Future<void> Function() task) {
    if (_taskQueue.isEmpty) {
      // 如果队列为空，直接执行任务
      _executeTask(task);
    } else {
      // 如果队列不为空，将任务添加到队列末尾
      _taskQueue.addLast(task);
    }
  }

  // 执行任务
  Future<void> _executeTask(Future<void> Function() task) async {
    await task();
    if (_taskQueue.isNotEmpty) {
      // 如果队列不为空，继续执行下一个任务
      final nextTask = _taskQueue.removeFirst();
      _executeTask(nextTask);
    }
  }
}
